package com.vecspace.data.model;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.vecspace.constant.AuthTag;
import com.vecspace.dicttable.CodeItem;

/**
 * 
 * @version 1.0
 * @author wanghua
 * @reviewer  
 * @createTime 2021年9月4日
 */
public class BaseBO {
	/**字典集合*/
	private Map<String, List<CodeItem>> codeTypes = new LinkedHashMap<>();
	/**主键id，name集合*/
	private Map<String, List<NameItem>> nameTypes = new LinkedHashMap<>();

	/**字典集合*/
	public Map<String, List<CodeItem>> getCodeTypes() {
		return codeTypes;
	}

	/**主键id，name集合*/
	public Map<String, List<NameItem>> getNameTypes() {
		return nameTypes;
	}

	/**权限类型 0无权限 1只读 2读写 5读写+归档*/
	private int authTag = AuthTag.All;//默认不受权限控制，有全部的权限类型
	
	/**字典集合
	 * 
	 * @param codeType 一般使用属性名而不是编码类型值，比如使用：sex, ethnic, districtCode, projectType等，而不是使用：CODE-001,DM-003
	 * @param items 
	 * @author wanghua
	 * @reviewer  
	 * @createTime 2021年9月29日 下午5:19:57
	 */
	public void addDictCodeType(String codeType, List<CodeItem> items) {
		codeTypes.put(codeType, items);
	}
	
	/**主键id，name集合
	 * 
	 * @param nameType 一般使用NameItem所在对象的对象名，比如 project, department
	 * @param items 
	 * @author wanghua
	 * @reviewer  
	 * @createTime 2021年9月29日 下午5:23:11
	 */
	public void addNameType(String nameType, List<NameItem> items) {
		nameTypes.put(nameType, items);
	}
	
	
	private StringBuilder logMsg;
	
	public String getLogMsg() {
		if(logMsg == null)return "";
		return logMsg.toString();
	}
	public void addLogMsg(String msg) {
		if(logMsg == null) {
			logMsg = new StringBuilder(512);
		}
		if(logMsg.length() > 0) {
			logMsg.append("\n");
		}
		logMsg.append(msg);
	}
	/**权限类型 0无权限 1只读 2读写 5读写+归档，参考 com.vecspace.constant.AuthTag*/
	public int getAuthTag() {
		return authTag;
	}
	/**权限类型 0无权限 1只读 2读写 5读写+归档，参考 com.vecspace.constant.AuthTag*/
	public void setAuthTag(Integer authTag) {
		if(authTag == null) this.authTag = 0;
		else this.authTag = authTag.intValue();
	}
}
